/**
 * 后端服务状态检查脚本
 * 
 * 用法:
 * node check-backend.js
 */

const http = require('http');

// 定义颜色
const colors = {
  red: '\x1b[31m',
  green: '\x1b[32m',
  yellow: '\x1b[33m',
  blue: '\x1b[34m',
  reset: '\x1b[0m'
};

console.log(`${colors.yellow}正在检查后端服务状态...${colors.reset}`);

// 尝试连接后端系统API
const request = http.get('http://localhost:8080/api/system/owner', (res) => {
  console.log(`${colors.blue}状态码: ${res.statusCode}${colors.reset}`);
  
  if (res.statusCode === 200) {
    console.log(`${colors.green}✓ 后端服务已正常运行!${colors.reset}`);
    console.log(`${colors.green}✓ API路径配置正确!${colors.reset}`);
    
    let data = '';
    res.on('data', (chunk) => {
      data += chunk;
    });
    
    res.on('end', () => {
      console.log(`${colors.blue}响应数据: ${data}${colors.reset}`);
      console.log(`${colors.yellow}后端服务检查成功，可以继续启动前端服务。${colors.reset}`);
    });
  } else {
    console.log(`${colors.red}✗ 后端服务响应异常! 状态码: ${res.statusCode}${colors.reset}`);
    showSuggestions();
  }
});

request.on('error', (e) => {
  console.log(`${colors.red}✗ 无法连接到后端服务: ${e.message}${colors.reset}`);
  console.log(`${colors.red}✗ 后端服务可能未启动或配置不正确${colors.reset}`);
  showSuggestions();
});

request.end();

function showSuggestions() {
  console.log('\n');
  console.log(`${colors.yellow}建议:${colors.reset}`);
  console.log('1. 确保后端服务已启动:');
  console.log('   cd Agricultural_33_01无前端');
  console.log('   ./gradlew bootRun');
  console.log('2. 确保后端服务正在监听8080端口');
  console.log('3. 检查application.properties中的配置');
  console.log('4. 检查后端控制器中的@RequestMapping路径');
  console.log('5. 确保区块链节点正在运行并且可以连接');
  console.log('\n');
} 